1. Field of the Invention
The present invention pertains to the field of computer systems. More particularly, the present invention relates to storage controllers for controlling data transfers between at least one host processing systems and at least two storage systems.
2. Background Art
Computer systems sometimes handle valuable or irreplaceable data. Data maintained by a computer system may be of vital importance, for example, in business applications such as airline reservations, bank account management, electronic funds transfers, shipping and receiving, and inventory control. Consequently, there is a need to ensure that valuable data is adequately protected against loss or damage.
It is common to store large volumes of data on mass storage devices, such as magnetic or optical disks. Occasionally, however, a mass storage device will fail, resulting in the loss of stored data. Consequently, it is a common practice to store a back-up copy of data that is considered valuable on a separate, backup storage device.
In use, modern host systems using storage including computers, mobile computers, mini PCs, hosts, clients, servers, blade computers, desktop information systems, laptop information systems, Pocket PCs, Personal Digital Assistants (PDA), Personal Information Managers (PIM), mobile phones and smartphones, or any system processing information, are prone to a wide variety of problems associated with the attached storage system that can result in severe problems for the user.
One problem that is often experienced is a storage system failure. Many storage systems, such as the standard hard disk, are mechanical in nature and can fail due to a mechanical malfunction. Even solid-state storage systems are not immune from device failure.
Another problem that has become a substantial issue is a malicious code infection, sometimes known as a virus infection, which can fatally infect the contents of a storage system. Despite using advanced anti-virus software, many users still come under brutal malicious code attacks.
Still another problem faced by a host system occurs during software installation and updating. During such times, a software installation wizard routinely changes existing files and settings on the storage device—oftentimes permanently. If the software installation or update does not leave the host system with the desired results, undoing the installation may prove impossible or time consuming. For example, if a host user is installing a suite of four software applications and the installations are working well up through the third application and then a negative event occurs, the host system may have no automated backup and reversion configuration control to gracefully revert back to a saved state just before the problematic third installation occurred.
A similar problem is frequently encountered by many users during file modification or deletion. By the time a user discovers that a file should not have been modified or deleted, it may be too late to recover back to the original file. Additionally, if the user is configuring the user interface of a host system, and such a configuration is not performed correctly, recovery to a workable host system state may prove difficult if not impossible.
Another problem faced by host systems in some industries involves the unintentional receipt, such as via e-mail, of a classified file on an un-accredited host system. Should this occur, protocol requires that the entire contents of the un-accredited host system be erased regardless of unaffected files. A simple miss-sent e-mail can have profound effects on the unintended recipient.
The common thread to these above-mentioned problems is an unintended or undesired modification to the information stored on a storage device of a host system. One simple solution to the above-mentioned problems is to make regular backups of the information stored on the storage system connected to the host system. If a negative event occurs, such as a virus attack or an unwanted file deletion, then the affected information can be restored from the backup. In this manner, the only information that may be lost is that which was created or modified since the last backup event.
To address these problems, a secondary storage device can be associated with the host system to backup a portion of or the entire contents of the primary storage system. Backup content may include user created information, operating system information, and any software information added in addition to the operating system. Such a backup to the secondary storage system may occur in the same interval in which a user normally makes backups. The problem with this approach is that it is technically difficult for the average host system user to implement such a process. Another problem is that a backup typically requires the host system user to remember to perform the backup, since the process may not normally be automated. Additionally, as the secondary storage system is logically connected to and accessible by the host operating system, the malady that causes the contents of the first storage system to become corrupt can also be immediately spread to any other connected storage systems, thereby possibly corrupting a plurality of storage systems.
Another approach is to use checkpointing software that marks regular intervals of time for a host system and allows the host system to return to the prior state of the host system at the beginning of any such time interval—the checkpoint—at any subsequent time. For example, if the checkpoints are everyday at 12:01 AM, the information system can revert, when necessary, back to the state it occupied at 12:01 AM that day. Once again the problem with this approach is that the checkpointing system is under the control of the host operating system and is contained on the same storage system. A malady that befalls the host system requiring the backup may then continue to negatively impact the host system even after it has been backed up to a previous checkpoint. Additionally, this approach is computationally expensive and may adversely affect system performance.
Accordingly, there exists a need in the art for an automated backup and reversion system that allows a user to recover from an adverse event that befalls a source storage system of a host system while addressing the above-mentioned shortcomings found in the prior art. Such a backup and reversion system must be able to recover a portion of or the entire contents of the source storage system which may include user created information, operating system information and the any software information added in addition to the operating system, without the need to install or update previously installed software. Such a backup system may be prophylactically isolated from the main host system so that any malady that may affect the source storage system does not spread to any of the at least one destination storage systems or to the backup system itself. Such a system must not be unduly complex or computationally expensive so that an average user of a host system may utilize the present inventive system without a significant affect on system performance.